﻿using System;
using Wizard.Source;

namespace Wizard
{
    public interface IDataStore : Runtime.IPlugin 
    {
        ISession GetSession(string sessionKey);
        IWizardApplication NewApplication(string applicationName);
        void DeleteApplication(IWizardApplication application);
        void SaveChanges();

        void ClearDatabase();

        ISession[] GetSessions();

        void DeleteSession(int sessionId);

        IWizardApplication[] GetApplications();

        void DeleteApplication(int applicationId);

        IWizardApplication GetApplication(int applicationId);

        ISourceFile GetSourceFile(int sourceFileId);

        Wizard.Source.ISourceFile[] GetSourceFiles(int applicationId);

        void DeleteSourceFile(int sourceFileId);


        void DeleteClassSources(IWizardApplication application);
    }

}